pull: Write .commitpartial for local pulls first too
authorColin Walters <walters@verbum.org>
Tue, 6 Dec 2016 01:56:55 +0000 (20:56 -0500)
committerAtomic Bot <atomic-devel@projectatomic.io>
Tue, 6 Dec 2016 16:13:53 +0000 (16:13 +0000)
This is what we do for non-local (i.e. HTTP) pulls; we wnat to
correctly handle being interrupted during partial pulls.

Closes: https://github.com/ostreedev/ostree/issues/579
Closes: #613
Approved by: jlebon

src/libostree/ostree-repo-pull.c

index 80c704380c86eb1a3d6551870cb5d54507405d85..47da6846a5935b604eb4e300655227474e5a864f 100644 (file)
@@ -1273,15 +1273,15 @@ scan_one_metadata_object_c (OtPullData         *pull_data,
     {
       if (!is_stored)
         {
-          if (!ostree_repo_import_object_from_with_trust (pull_data->repo, pull_data->remote_repo_local,
-                                                          objtype, tmp_checksum, !pull_data->is_untrusted,
-                                                          cancellable, error))
-            goto out;
           if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
             {
               if (!write_commitpartial_for (pull_data, tmp_checksum, error))
                 goto out;
             }
+          if (!ostree_repo_import_object_from_with_trust (pull_data->repo, pull_data->remote_repo_local,
+                                                          objtype, tmp_checksum, !pull_data->is_untrusted,
+                                                          cancellable, error))
+            goto out;
         }
       is_stored = TRUE;
       is_requested = TRUE;